package com.xiaoq.coms.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by chenjh on 2018/3/28.
 */
public class CommonUtil {
    private static final String REGEX_IS_MOBILE ="(?is)(^1[3|4|5|7|8|9][0-9]\\d{4,8}$)";// 正则表达式,可以只输入手机号码前7位
    private static final Pattern p = Pattern.compile(REGEX_IS_MOBILE);
    private static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    private static final long ONE_DAY_MILLIS = 1000 * 60 * 60 * 24;

    /**
     *验证手机号格式 是否符合
     *@param mobileNumber
     */
    public static boolean veriyMobile(String mobileNumber) {
        if(mobileNumber == null){
            return false;
        }
        Matcher m = p.matcher(mobileNumber);
        return m.matches();
    }


    /**
     * 计算两个日期相隔的天数
     * 2017-02-16 23:59:59 和 2017-02-17 00:00:00 相隔天数为1
     * @param start 开始时间
     * @param end 结束时间
     * @return
     */
    public static Integer getApartDays(Date start, Date end) {
        try {
            return (int)((df.parse(df.format(end)).getTime() - df.parse(df.format(start)).getTime()) / ONE_DAY_MILLIS);
        }catch (Exception e){
            return null;
        }
    }


    /**
     * 计算两个日期相差的天数
     * 2017-02-16 23:59:59 和 2017-02-17 00:00:00 相差天数为0
     * @param start 开始时间
     * @param end 结束时间
     * @return
     */
    public static Integer getDifferDays(Date start, Date end) {

        if(start == null || end == null){
            return null;
        }

        return (int) ((end.getTime() - start.getTime()) / ONE_DAY_MILLIS);
    }

    public static void main(String[] args) {
        Date expirDate = new Date(1524465263000L);
        Date now = new Date();
        System.out.println(getApartDays(now, expirDate));
        System.out.println(getDifferDays(now, expirDate));
    }

}
